Operating system kernels provide a plurality of services that reside within the kernel. Not all of these services have user space interactions. Nevertheless, kernel developers have a need to test such services to ensure that they perform correctly and efficiently. For example, in one known operating system, a Kernel Event Notification (KEN) system resides within the operating system kernel, but users have no ability to access any of its functions directly. To test such systems in environments as close to those that would actually be encountered in a user installation, the services should be tested when they are loaded along with the rest of the operating system kernel. However, calling code would have to reside in the kernel space to directly invoke the service interface functions.
One approach used to avoid these problems in the past has been to load a pseudo device that handled all systems being tested. The pseudo device code provided additional interface functions between the service interface functions and user space, thus making the service interface functions indirectly accessible from user space. However, for each different service to be tested, new pseudo device code was added to accommodate the interface functions of the new service, and the system rebooted to load the revised version of the pseudo device. Thus, fully testing the different kernel services of an operating system kernel in a situation that is as close as possible to a users environment has been difficult and inconvenient for kernel designers.